/**
 *
 * @Author 赵光
 * @Desc VelocityUtils
 * @Date 2020年5月11日
 */
package com.xiaouyudeguang.common.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.springframework.context.annotation.Configuration;

import java.io.StringWriter;
import java.util.Map;

/**
 * Velocity引擎渲染
 * 
 * @Author 赵光
 * @Desc VelocityUtils
 * @Date 2020年5月11日
 */
@Slf4j
@Configuration
public class VelocityUtils {

	private static final VelocityEngine ve = new VelocityEngine();

	static {
		ve.init();
	}

	/**
	 * 渲染规则模板(将属性值替换到规则模板)
	 *
	 * @param instring
	 * @param logTag
	 * @param props
	 * @return
	 */
	public static String render(String instring, String logTag, Map<String, String> props) {
		VelocityContext ctx = new VelocityContext();
		if (props != null) {
			props.forEach(ctx::put);
		}
		StringWriter sw = new StringWriter();
		ve.evaluate(ctx, sw, logTag, instring);
//		System.out.print("\n=============================================================================\n");
//		System.out.print("\n\n输出渲染后文本内容：\n\n");
//		System.out.print(sw);
//		System.out.print("\n=============================================================================\n");
		return sw.toString();
	}

}
